#ifndef __LevelManager_h_
#define __LevelManager_h_

#include <Ogre.h>
#include "Weapon.h"

class LevelManager : public Ogre::FrameListener, public Ogre::Singleton<LevelManager>
{

	// Attributes ------------------------------------------------------------------------------
protected:
	Ogre::Real mTimeUntilNextEnemy;
	Ogre::Real mTimeUntilNextFish;
	Ogre::Real mTimeUntilNextCustomObject;
	Ogre::Real mTimeUntilNextBonus;
	Ogre::Real mTimeUntilNextWeapon;
	Ogre::Real mTimeUntilNextLevel;
	Ogre::Real mTimeTotal;
	Ogre::Real mTimeLevel;
	int level;
	int difficulty;
	int tirage;
	bool pause;

	Weapon::WeaponType currentWeaponType;
	Weapon::WeaponLevel currentWeaponLevel;
	bool lastLevel;


public:

	// Methods ---------------------------------------------------------------------------------
protected:

public:
	LevelManager();
	void callForNewWeapon(const Ogre::Vector3& position);
	virtual bool frameStarted(const Ogre::FrameEvent& evt);

	void resume(void);
	void toggleWeapon();
	int getLevel();


};

#endif